//    Copyright (C) 2013  <lugocreation@gmail.com>
//
//    This program is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    This program is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.
package org.jpgolay.me.payment;

import java.awt.*;
import javax.swing.JButton;
import javax.swing.JPanel;
import org.jpgolay.gui.fixed.*;

public class PaymentAdvanceSearchGUI extends JPanel {

    public PaymentAdvanceSearchGUI() {
        jPanel = null;
        selectedAgency = null;
        selectedPeriod = null;
        selectedType = null;
        twoRadioButtom = null;
        initialize();
    }

    private void initialize() {
        setLayout(new BorderLayout());
        setSize(306, 108);
        setPreferredSize(new Dimension(306, 54));
        add(getJPanel(), "Center");
    }

    private JPanel getJPanel() {
        if (jPanel == null) {
            GridLayout gridLayout3 = new GridLayout();
            jPanel = new JPanel();
            jPanel.setLayout(gridLayout3);
            gridLayout3.setRows(4);
            gridLayout3.setColumns(1);
            jPanel.add(getSelectedType(), null);
            jPanel.add(getSelectedAgency(), null);
            jPanel.add(getSelectedPeriod(), null);
            jPanel.add(getTwoRadioButtom(), null);
        }
        return jPanel;
    }

    private LabelAndComboBox getSelectedType() {
        if (selectedType == null) {
            selectedType = new LabelAndComboBox();
            selectedType.setLabel("Type de pi\350ce");
            selectedType.setList(new String[]{
                        "FACTURE client", "AVOIR client", "FACT. & AV. client", "FACTURE fournisseur", "DEVIS client", "COMMANDE client", "BL client", "COMMANDE fournisseur"
                    });
        }
        return selectedType;
    }

    private LabelAndComboBox getSelectedAgency() {
        if (selectedAgency == null) {
            selectedAgency = new LabelAndComboBox();
            selectedAgency.setLabel("Agence s\351l\351ctionn\351e");
            selectedAgency.setList(new String[]{
                        "AGENCE 1", "AGENCE 2", "AGENCE 3", "AGENCE 4", "AGENCE 5", "TOUTES"
                    });
        }
        return selectedAgency;
    }

    private LabelAndDateButton getSelectedPeriod() {
        if (selectedPeriod == null) {
            selectedPeriod = new LabelAndDateButton();
            selectedPeriod.setLabelLeft("P\351riode : TOUT");
        }
        return selectedPeriod;
    }

    private TwoRadioButtom getTwoRadioButtom() {
        if (twoRadioButtom == null) {
            twoRadioButtom = new TwoRadioButtom();
            twoRadioButtom.setLeftLabel("toutes les pi\350ces");
            twoRadioButtom.setRightLabel("pi\350ces non sold\351es");
        }
        return twoRadioButtom;
    }

    public void setAgency(int index) {
        getSelectedAgency().setSelectedIndex(index);
    }

    public int getAgency() {
        return getSelectedAgency().getSelectedIndex();
    }

    public void setPieceType(int index) {
        getSelectedType().setSelectedIndex(index);
    }

    public int getPieceType() {
        return getSelectedType().getSelectedIndex();
    }

    public void setPeriode(String txt) {
        getSelectedPeriod().setLabelLeft(txt);
    }

    public JButton getButtonRight() {
        return getSelectedPeriod().getButtonRight();
    }

    public boolean isAllPieces() {
        return twoRadioButtom.isSelectedLeftRadioB();
    }
    private JPanel jPanel;
    private LabelAndComboBox selectedAgency;
    private LabelAndDateButton selectedPeriod;
    private LabelAndComboBox selectedType;
    private TwoRadioButtom twoRadioButtom;
}
